﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ShuticsBiz;
using ShuticsEntities;

namespace TPDiseño2011
{
    public partial class frmLogin : Form
    {
        public frmLogin()
        {
            InitializeComponent();
        }

        private void frmLogin_Load(object sender, EventArgs e)
        {
            //Seteamos la visibilidad de los controles
            lblTipo.Visible = false;
            cboTipo.Visible = false;
            lblDocumento.Visible = false;
            txtDocumento.Visible = false;
            lblClave.Visible = false;
            txtClave.Visible = false;

            //Seteamos la posicion de los controles
            lblTipo.Location = new Point(lblUsuario.Location.X, lblUsuario.Location.Y - 10);
            cboTipo.Location = new Point(txtUsuario.Location.X + 15, txtUsuario.Location.Y - 10);
            lblDocumento.Location = new Point(lblContraseña.Location.X, lblContraseña.Location.Y - 10);
            txtDocumento.Location = new Point(txtContraseña.Location.X + 15, txtContraseña.Location.Y - 10);
            lblClave.Location = new Point(lblContraseña.Location.X, lblContraseña.Location.Y + (lblContraseña.Location.Y - lblUsuario.Location.Y)-10);
            txtClave.Location = new Point(txtDocumento.Location.X, txtDocumento.Location.Y + (txtDocumento.Location.Y - cboTipo.Location.Y));

            cboTipo.DataSource = ControlCandidato.GetTiposDocumento();
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        
        private void LimpiarCampos()
        {
            txtUsuario.Text = "";
            txtContraseña.Text = "";
            txtDocumento.Text = "";
            txtClave.Text = "";
        }

        void rbtn_CheckedChanged(object sender, EventArgs e)
        {
            RadioButton rb = sender as RadioButton;

            if (rb == rbtnCuestionario && rb.Checked)
            {
                //Seteamos la visibilidad de los controles
                lblTipo.Visible = true;
                cboTipo.Visible = true;
                lblDocumento.Visible = true;
                txtDocumento.Visible = true;
                lblClave.Visible = true;
                txtClave.Visible = true;
                lblUsuario.Visible = false;
                txtUsuario.Visible = false;
                lblContraseña.Visible = false;
                txtContraseña.Visible = false;
                cbxLoguear.Visible = false;
                txtDocumento.Focus();
            }
            else if (rb == rbtnLogin && rb.Checked)
            {
                //Seteamos la visibilidad de los controles
                lblTipo.Visible = false;
                cboTipo.Visible = false;
                lblDocumento.Visible = false;
                txtDocumento.Visible = false;
                lblClave.Visible = false;
                txtClave.Visible = false;
                cbxLoguear.Visible = true;
                lblUsuario.Visible = true;
                txtUsuario.Visible = true;
                lblContraseña.Visible = true;
                txtContraseña.Visible = true;
                txtUsuario.Focus();
            }
        }

        private void btnIngresar_Click(object sender, EventArgs e)
        {
            if (rbtnLogin.Checked)
            {
                if(txtUsuario.Text == string.Empty || txtContraseña.Text == string.Empty)
                {
                    MessageBox.Show(Messages.ERRORLOGINCONSULTOR, Messages.CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    LimpiarCampos();
                }
                else if (ControlAutenticacion.AutenticarLDAP(txtUsuario.Text, txtContraseña.Text, cbxLoguear.Checked))
                {
                    this.Hide();
                    frmMain main = new frmMain(txtUsuario.Text);
                    main.ShowDialog();
                    this.Close();
                }
                else
                {
                    MessageBox.Show(Messages.ERRORLOGINCONSULTOR, Messages.CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    LimpiarCampos();
                }
            }
            else if (rbtnCuestionario.Checked)
            {
                try
                {
                    Cuestionario cu = ControlAutenticacion.AutenticarCandidato(((List<TipoDoc>)cboTipo.DataSource)[cboTipo.SelectedIndex], txtDocumento.Text, txtClave.Text);
                    
                    if (cu.Estado.Nombre.Equals("Activo") || cu.Estado.Nombre.Equals("En proceso"))
                    {
                        this.Hide();
                        frmCompletarCuestionario cuestionario = new frmCompletarCuestionario(cu);
                        cuestionario.ShowDialog();
                        this.Close();
                    }
                    else
                    {
                        throw new Exception();
                    }
                    
                }
                catch (Exception)
                {
                    MessageBox.Show(Messages.ERRORLOGINCANDIDATO, Messages.CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    LimpiarCampos();
                }
            }
        }        
    }
}
